﻿//-----------------------------------------------------------------------
// <copyright file="AlgorithmStep.cs" company="Luboš Bretschnieder">
// Copyright (c) 2008 Luboš Bretschnieder, Licensed under the Apache License, Version 2.0.
// </copyright>
//-----------------------------------------------------------------------
namespace Graphs.Algorithms
{
    using System.Collections.Generic;
    using UI;

    /// <summary>
    /// Single step of algorithm carying all information 
    /// needed to visualize the step
    /// </summary>
    public class AlgorithmStep
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="AlgorithmStep"/> class.
        /// </summary>
        /// <param name="graph">The graph.</param>
        public AlgorithmStep(Graph graph)
        {
            this.Graph = graph;
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="AlgorithmStep"/> class.
        /// </summary>
        /// <param name="graph">The graph.</param>
        /// <param name="additionalStatus">The additional status.</param>
        public AlgorithmStep(Graph graph, IList<IStatusBar> additionalStatus)
        {
            this.Graph = graph;
            this.AdditionalStatus = additionalStatus;
        }

        /// <summary>
        /// Gets or sets the graph.
        /// </summary>
        /// <value>The graph that algorithm has updated.</value>
        public Graph Graph { get; set; }

        /// <summary>
        /// Gets or sets the additional status bars.
        /// </summary>
        /// <value>The list of additional status bars.</value>
        public IList<IStatusBar> AdditionalStatus { get; set; }
    }
}
